package com.xiaokaceng.openci.application;

import com.xiaokaceng.openci.domain.Developer;
import com.xiaokaceng.openci.dto.DeveloperDto;
import org.dayatang.querychannel.Page;

import java.util.Collection;
import java.util.List;

public interface DeveloperApplication {

	/**
	 * 分页查询开发者信息
	 * 
	 * @param example
	 * @param currentPage
	 * @param pagesize
	 * @return
	 */
	Page<DeveloperDto> pagingQeuryDevelopers(Developer example, int currentPage, int pagesize);

	/**
	 * 创建一个开发者
	 * 
	 * @param developer
	 */
	void createDeveloper(Developer developer);

	/**
	 * 修改一个开发者信息
	 * 
	 * @param developer
	 */
	void updateDeveloper(Developer developer);

	/**
	 * 撤销一个开发者
	 * 
	 * @param developer
	 */
	void abolishDeveloper(Developer developer);

	/**
	 * 撤销一批开发者
	 * 
	 * @param developers
	 */
	void abolishDevelopers(Collection<Developer> developers);

	/**
	 * 检验开发者ID是否存在
	 * 
	 * @param developerId
	 * @return
	 */
	boolean checkDeveloperIdIsExist(String developerId);

	/**
	 * 根据开发者ID查找
	 * 
	 * @param developerId
	 * @return
	 */
	List<DeveloperDto> findByDeveloperId(String developerId);

	/**
	 * 根据开发者ID获取实例
	 * 
	 * @param developerId
	 * @return
	 */
	Developer getByDeveloperId(String developerId);
}
